package manage.dao;

import manage.domain.Student;

public class StudentDao {
    //创建一个长度为5的学生数组
    static Student[] stus = new Student[5];

    //使用代码块初始化，让系统在每次启动时获得初始化数据
    static {
        Student stu = new Student("heima001", "张三", "23", "1999-11-11");
        Student stu1 = new Student("heima002", "李四", "24", "2000-11-11");
        stus[0] = stu;
        stus[1] = stu1;
    }

    //添加学生信息到Student数组中
    public boolean addStudent(Student stu) {
        int index = -1;
        for (int i = 0; i < stus.length; i++) {
            Student student = stus[i];//通过遍历获取每个学生的信息
            if (student == null) {
                index = i;
                break;
            }
        }
        if (index == -1) {
            return false;
        } else {
            stus[index] = stu;
            return true;
        }
    }

    //获取student数组中所有的学生信息
    public Student[] findAllStudent() {
        return stus;//返回学生数组
    }

    //通过学生id删除对应的学生信息
    public void deleteStudentById(String delId) {
        int index = getIndex(delId);
        stus[index] = null;//在数组中使用null替换对应的学生对象
    }

    //通过用户输入的Id值获取所对应学生信息的索引（主要用于deleteStudentById方法和updateStudent方法）
    public int getIndex(String delId) {
        int index = -1;
        for (int i = 0; i < stus.length; i++) {
            Student stu = stus[i];
            if (stu != null && stu.getId().equals(delId)) {//学生数组不为空并且Id对应用户输入的Id
                index = i;//让索引index等于对应学生信息的i值
                break;
            }
        }
        return index;
    }

    //修改学生信息
    public void updateStudent(String updateId, Student newStu) {
        int index = getIndex(updateId);
        stus[index] = newStu;//使用null换掉新包装的类
    }
}
